package cn.highedu.boot01.util;

import com.alibaba.druid.pool.DruidDataSource;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 数据库连接工具类
 */
public class DBUtil {
    // 定义德鲁伊数据库连接池
    private static DruidDataSource pool;
    // 静态代码块
    static {
        // 初始化连接池
        pool = new DruidDataSource();
        // 设置要连接的数据库
        pool.setUrl("jdbc:mysql://localhost:3306/bootdb?characterEncoding=utf-8" +
                "&serverTimezone=Asia/Shanghai&useSSL=false&rewriteBatchedStatements=true");
        // 设置数据库用户名
        pool.setUsername("root");
        // 设置数据库密码
        pool.setPassword("root");
        // 连接池中初始的连接数
        pool.setInitialSize(5);
        // 连接池中最大连接数
        pool.setMaxActive(20);
    }
    public static Connection getConnection() throws SQLException {
        return pool.getConnection();
    }
    public static void close(Connection con, Statement st) {
        if (st != null) {
            try {
                st.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (con != null) {
            try {
                con.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    public static void close(Connection con, Statement st, ResultSet rs) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (st != null) {
                st.close();
            }
            if (con != null) {
                con.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
